#pragma once
#include"hashTable.h"



template<class T, class hashFunc = hashFunc<T>>
class unordered_set
{
	struct SetOfT
	{
		const T& operator()(const T& val)
		{
			return val;
		}
	};
	typedef hashBucket<T, T, SetOfT, hashFunc> hashBucket;
private:
	hashBucket _hb;
public:
	typedef typename hashBucket::iterator iterator;
	iterator begin() { return _hb.begin(); }
	iterator end() { return _hb.end(); }

	pair<iterator,bool> insert(const T& val)
	{
		return _hb.insert(val);
	}
	iterator find(const T& val)
	{
		return _hb.find(val);
	}
	bool erase(const T& val)
	{
		return _hb.erase(val);
	}
};
